方法鏈Chaining
class Car:
def turn_on(slef):
print("你啟動了引擎")
#回傳物件本身
return self
def drive(slef):
print("你開車了")
return self
def break(slef):
print("你踩了煞車")
return self
def turn_off(slef):
print("你關閉了引擎")
return slef
car = Car()
car.turn_on().drine().break().turn_off()
super函式
範例1:正方形
class Rectengle:
def __init__(slef, length, width):
slef.length = length
slef.width = width
print("矩形的初始化已執行")
class Square(Rectengle):
def __init__(slef, length, width):
super().__init__(length, width)
print("正方形的初始化已執行")
aquare = Square(500, 500)
矩形的初始化已執行
正方形的初始化已執行
範例2:立方體
class Rectengle:
def __init__(slef, length, width):
slef.length = length
slef.width = width
print("矩形的初始化已執行")
class Cube(Rectengle):
def __init__(slef, length, width, height):
super().__init__(length, width)
self.height = height
print(f"立方體的長寬高是:{height}, {width}, {height}")
cube = Cube(10,20,30)
矩形的初始化已執行
立方體的長寬高是:10,20,30
物件作為引數:修改物件,不需建立新的
class Car:
color = None
def change_color(car, color):
car.color = color
car1 = Car()
car2 = Car()
car3 = Car()
print(car1.color)
print(car2.color)
print(car3.color)
change_color(car1, "紅色")
change_color(car2, "黑色")
change_color(car3, "藍色")
print(car1.color)
print(car2.color)
print(car3.color)
None
None
None
紅色
藍色
黑色